Applicative Style
このように書き換える
code:hs
foo = f <$> m1 <*> m2
書き換え前の例
code:hs
-- do式を使ったもの
foo = do
a <- m1
b <- m2
return (f a b)
code:hs
-- pureを使ったもの
foo = pure f <*> m1 <*> m2
code:hs
-- fmapを使ったもの
foo = fmap f m1 <*> m2
fmapやpureやreturnをなくす
雑なイメージ
code:hs
普通の関数 <$> ap値
普通の関数 <$> ap値 <*> ap値 ..
関数Applicativeとかもあるのでこの限りではない
code:hs
pure (+) <*> Just 3 <*> Just 5 -- Just 8
参考
applicativeの論文
[| f x1 x2 ... |]
applicative styleの糖衣構文
実用例など
最初の例を実践するためには、Applicativeにする必要はなく、Applyで十分であることがわかるmrsekut.icon